import MySQLdb as mdb
import sys
from classe_livro import *

class DataBaseLivro:
    def __init__(self):
        self.host = 'localhost'
        self.usuario = 'root'
        self.senha = 'sql'
        self.db_nome = 'pyblidb'

        
    def CadastrarLivro(self, livro):
        
        nome = livro.GetNome()
        autor = livro.GetAutor()
        editora = livro.GetEditora()
        ano = livro.GetAno()
        emprestado = livro.GetEmprestado()
        if emprestado == False:
            emprestado = 0
        else:
            emprestado = 1
            
        
        #Comando para inserir na tabela -livro- do MySQL um livro
        comando = '''INSERT INTO livro(LivroNome, LivroAutor, LivroEditora, LivroAno, LivroEmprestado)
        VALUES ('%s', '%s', '%s', '%s', '%s')'''%(nome, autor, editora, ano, emprestado)
        confirmacao = self.ExecutarComando(comando)
        return confirmacao   
            

        
        
    def EditarLivro(self, livro, cod):
        nome = livro.GetNome()
        autor = livro.GetAutor()
        editora = livro.GetEditora()
        ano = livro.GetAno()
        emprestado = livro.GetEmprestado()
        if emprestado == False:
            emprestado = 0
        else:
            emprestado = 1
            
        comando = '''UPDATE livro SET LivroNome = '%s', LivroAutor = '%s', LivroEditora = '%s',
        LivroAno = '%s', LivroEmprestado = '%s'
        WHERE LivroCod =%s'''%(nome, autor, editora, ano, emprestado, cod)
        confirmacao = self.ExecutarComando(comando)
        return confirmacao

    def DesabilitarLivro(self, cod):
        comando = '''DELETE FROM livro WHERE LivroCod = %s'''%(cod)
        confimarcao = self.ExecutarComando(comando)
        return confirmacao

    def ProcurarLivroCod(self, cod):
        comando = '''SELECT * FROM livro WHERE LivroCod = %s'''%(cod)
        dados = self.ExecutarComandoRetorno(comando)
        

        return dados

    def ProcurarLivros(self, info, campo):
        info = str(info)
        info = '%'+info+'%'
        comando = '''SELECT * FROM livro WHERE %s LIKE '%s' '''%(campo,info)
        dados = self.ExecutarComandoRetorno(comando)
        return dados
        
        


    def ExecutarComandoRetorno(self, comando):
        
        try:
            
            conn = mdb.connect(self.host, self.usuario, self.senha, self.db_nome)
            
            cursor = conn.cursor()
            cursor.execute(comando)
            dados = cursor.fetchall()
            
            conn.commit()
            
            cursor.close()
            return dados
        except mdb.Error, e:
            print "Error %d: %s" % (e.args[0],e.args[1])
            return False

            

    def ExecutarComando(self, comando):
        
        try:
            
            conn = mdb.connect(self.host, self.usuario, self.senha, self.db_nome)
            
            cursor = conn.cursor()
            cursor.execute(comando)
            conn.commit()
            
            cursor.close()
            return True
        except mdb.Error, e:
            print "Error %d: %s" % (e.args[0],e.args[1])
            return False



